import variables from '@/assets/styles/element-variables.scss';
import defaultSettings from '@/settings';
import { queryConfig } from '@/api/config';
const { tagsView, fixedHeader, sidebarLogo, uniqueOpened, showFooter, footerTxt, caseNumber, appid, agentId, redirectUrl } = defaultSettings;

const state = {
  theme: variables.theme,
  showSettings: false,
  tagsView: tagsView,
  fixedHeader: fixedHeader,
  sidebarLogo: sidebarLogo,
  uniqueOpened: uniqueOpened,
  showFooter: showFooter,
  footerTxt: footerTxt,
  caseNumber: caseNumber,
  appid: appid,
  agentId: agentId,
  redirectUrl: redirectUrl,
  config: {
    showSettings: false,
    tagsView: tagsView,
    fixedHeader: fixedHeader,
    sidebarLogo: sidebarLogo,
    uniqueOpened: uniqueOpened,
    showFooter: showFooter,
    footerTxt: footerTxt,
    caseNumber: caseNumber
  }
};

const mutations = {
  SET_CONFIG: (state, token) => {
    state.config = token;
    state.caseNumber = token.caseNumber;
  },
  CHANGE_SETTING: (state, { key, value }) => {
    if (state.hasOwnProperty(key)) {
      state[key] = value;
    }
  }
};

const actions = {
  changeSetting({ commit }, data) {
    commit('CHANGE_SETTING', data);
  },
  setConfig({ commit }) {
    queryConfig().then((res) => {
      const { data } = res;
      if (undefined !== data && data !== null) {
        commit('SET_CONFIG', data);
      }
    });
  }
};
export default {
  namespaced: true,
  state,
  mutations,
  actions
};

